Typically, secure terminals comprise:                a processor to execute software applications and routines called by the software applications and,        at least one secret key.        
The processor can execute non-secure software applications as well as secure software applications.
Non-secure software applications are software applications that can be easily updated or changed. Typically, non-secure software applications are written in memories that can be rewritten such as flash memories, for example.
In contrast, secure software applications are applications that cannot be easily changed. For example, secure software applications are written in a read-only memory during the manufacturing process of the secure terminals. The read-only memory is protected so that each secure software application cannot be easily changed.
The non-secure software applications are the weak points of a secure terminal because they can be changed by a hacker. However, for the design of secure terminals, it is not suitable to record any software application in read-only memories. Therefore, there is always the threat that a hacker may change a non-secure software application so that the changed non-secure software application reads the secret key and discloses it to the hacker.